ํ์ด์ฌ๊ณผ ์ฝ๋ํ ์ธํ๋ผ(IaC)๋ก ์ธํ๋ผ๋ฅผ ์๋ํํ์ธ์. ์ ์ธ๊ณ ํ์ ์ํ ์ต์ ๋ฐ๋ธ์ต์ค ์ค๋ฌด์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์ด๋์ ๋๋ค.
ํ์ด์ฌ ๋ฐ๋ธ์ต์ค ์๋ํ: ์ฝ๋ํ ์ธํ๋ผ
์ค๋๋ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋ ๊ธฐ์ ํ๊ฒฝ์์ ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ธํ๋ผ ๊ด๋ฆฌ์ ํ์์ฑ์ด ๊ธ์ฆํ๊ณ ์์ต๋๋ค. ์๋ํ๋ก ์ด์ง๋๋ ๋ฐ๋ธ์ต์ค ์ค๋ฌด๋ ์ ์ธ๊ณ ์กฐ์ง์ ํ์์ ์ด ๋์์ต๋๋ค. ์ด๋ฌํ ๋ณํ์ ํต์ฌ์๋ ์ฝ๋ํ ์ธํ๋ผ(IaC)๊ฐ ์์ผ๋ฉฐ, ์ด๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๊ณ ํ๋ก๋น์ ๋ํ๋ ๋ฐฉ๋ฒ๋ก ์ผ๋ก, ๋ฐ๋ณต์ฑ, ์ผ๊ด์ฑ ๋ฐ ์๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ํ์ด์ฌ ๊ธฐ๋ฐ ๋ฐ๋ธ์ต์ค ์๋ํ ๋ฐ IaC์ ์ธ๊ณ๋ฅผ ํ๊ตฌํ๋ฉฐ, ์ธํ๋ผ ๊ด๋ฆฌ ์ ๋ต์ ํ๋ํํ๋ ค๋ ์ ๋ฌธ๊ฐ์ ์กฐ์ง์ ์ํ ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฝ๋ํ ์ธํ๋ผ(IaC)๋ ๋ฌด์์ธ๊ฐ์?
์ฝ๋ํ ์ธํ๋ผ(IaC)๋ ์๋ ํ๋ก์ธ์ค๊ฐ ์๋ ์ฝ๋๋ฅผ ํตํด ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๊ณ ํ๋ก๋น์ ๋ํ๋ ๊ดํ์ ๋๋ค. ์ด๋ ์๋ฒ, ๋คํธ์ํฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ก๋ ๋ฐธ๋ฐ์ ๋ฑ ์ธํ๋ผ๋ฅผ ๊ตฌ์ฑ ํ์ผ์ด๋ ์ฝ๋๋ก ์ ์ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ํ์ผ์ ์ฌ์ฉํ์ฌ ์ธํ๋ผ์ ์์ฑ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์๋ํํฉ๋๋ค. IaC๋ ๋ช ๊ฐ์ง ์ฃผ์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ์๋ํ: ์ธํ๋ผ์ ํ๋ก๋น์ ๋, ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์๋ํํฉ๋๋ค.
- ์ผ๊ด์ฑ: ํ๊ฒฝ(๊ฐ๋ฐ, ํ ์คํธ, ํ๋ก๋์ ) ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด๋ ์ธํ๋ผ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
- ๋ฐ๋ณต์ฑ: ์ธํ๋ผ๋ฅผ ์์ ์ ์ด๊ณ ์์ธก ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๋ณต์ ํฉ๋๋ค.
- ๋ฒ์ ์ ์ด: ๋ฒ์ ์ ์ด ์์คํ (์: Git)์ ์ฌ์ฉํ์ฌ ์ธํ๋ผ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํฉ๋๋ค.
- ํ์ : ์ฝ๋ ๊ฒํ ๋ฐ ๊ณต์ ์ธํ๋ผ ์ ์๋ฅผ ํตํด ํ์ ๊ฐ์ ํ์ ์ ์ด์งํฉ๋๋ค.
- ํจ์จ์ฑ: ์๋ ์ค๋ฅ๋ฅผ ์ค์ด๊ณ ์ธํ๋ผ ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํฉ๋๋ค.
- ํ์ฅ์ฑ: ์์์ ๋ฐ๋ผ ์ธํ๋ผ๋ฅผ ์ฝ๊ฒ ํ์ฅํ๊ฑฐ๋ ์ถ์ํฉ๋๋ค.
IaC๋ ๋จ์ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋๋ค. ์ธํ๋ผ๋ฅผ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ ํธ๋ก ์ทจ๊ธํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ธํ๋ผ ๊ด๋ฆฌ์ ๋ฒ์ ์ ์ด, ํ ์คํธ ๋ฐ ์ง์์ ํตํฉ๊ณผ ๊ฐ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ์์น์ ์ ์ฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋ฐ๋ธ์ต์ค ๋ฐ IaC์ ํ์ด์ฌ์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
ํ์ด์ฌ์ ๋ค์ฉ์ฑ, ๊ฐ๋ ์ฑ ๋ฐ ๊ด๋ฒ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๊ตฌ ์ํ๊ณ ๋๋ถ์ ๋ฐ๋ธ์ต์ค์์ ์ง๋ฐฐ์ ์ธ ์ญํ ์ ํ๊ฒ ๋์์ต๋๋ค. IaC์ ํ์ด์ฌ์ด ์ธ๊ธฐ ์๋ ์ ํ์ธ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๊ฐ๋ ์ฑ: ํ์ด์ฌ์ ๊น๋ํ๊ณ ๊ฐ๊ฒฐํ ๊ตฌ๋ฌธ์ ์ธํ๋ผ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ดํดํ๋ฉฐ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ์ด๋ ํนํ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ํ ๊ฐ์ ํ์ ๋ฐ ๋ฌธ์ ํด๊ฒฐ์ ์ค์ํฉ๋๋ค.
- ํ์ต ์ฉ์ด์ฑ: ํ์ด์ฌ์ ์๋์ ์ผ๋ก ์ฌ์ด ํ์ต ๊ณก์ ๋๋ถ์ ๋ฐ๋ธ์ต์ค ์์ง๋์ด๋ ๊ธฐ๋ณธ ์ฌํญ์ ๋น ๋ฅด๊ฒ ํ์ ํ ์ ์์ด ์จ๋ณด๋ฉ ์๋๊ฐ ๋นจ๋ผ์ง๊ณ ์์ฐ์ฑ์ด ํฅ์๋ฉ๋๋ค.
- ํ๋ถํ ์ํ๊ณ: ํ์ด์ฌ์ ๋ฐ๋ธ์ต์ค ์์ ์ ์ํด ํน๋ณํ ์ค๊ณ๋ ๋ฐฉ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ ์์ํฌ ์ํ๊ณ๋ฅผ ์๋ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ํด๋ผ์ฐ๋ ๊ด๋ฆฌ, ๊ตฌ์ฑ ๊ด๋ฆฌ ๋ฐ ์ธํ๋ผ ํ๋ก๋น์ ๋์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋ฉ๋๋ค.
- ํฌ๋ก์ค ํ๋ซํผ ํธํ์ฑ: ํ์ด์ฌ์ ๋ค์ํ ์ด์ ์ฒด์ (Windows, macOS, Linux)์์ ์คํ๋๋ฏ๋ก ๋ค์ํ ํ๊ฒฝ์์ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ด์์ ์ ๋๋ค. ์ด๋ ๋ค์ํ ์๋ฒ ํ๊ฒฝ์ ๊ฐ์ถ ๊ธ๋ก๋ฒ ์กฐ์ง์ ํนํ ์ ์ฉํฉ๋๋ค.
- ์ปค๋ฎค๋ํฐ ์ง์: ํฌ๊ณ ํ๋์ ์ธ ํ์ด์ฌ ์ปค๋ฎค๋ํฐ๋ ํ๋ถํ ๋ฆฌ์์ค, ๋ฌธ์ ๋ฐ ์ง์์ ์ ๊ณตํ์ฌ ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฐพ๊ณ ์ต์ ํธ๋ ๋๋ฅผ ํ์ ํ๋ ๊ฒ์ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
- ํตํฉ ๊ธฐ๋ฅ: ํ์ด์ฌ์ ๋ค๋ฅธ ๋ฐ๋ธ์ต์ค ๋๊ตฌ ๋ฐ ๊ธฐ์ ๊ณผ ์ํํ๊ฒ ํตํฉ๋์ด ํฌ๊ด์ ์ธ ์๋ํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ CI/CD ๋๊ตฌ, ๋ชจ๋ํฐ๋ง ์์คํ ๋ฐ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์์ ํตํฉ์ด ํฌํจ๋ฉ๋๋ค.
IaC๋ฅผ ์ํ ์ฃผ์ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๋๊ตฌ
๋ช ๊ฐ์ง ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๊ตฌ๋ ๊ฐ๋ ฅํ๊ณ ํจ์จ์ ์ธ IaC ์๋ฃจ์ ์ ๊ตฌ์ถํ๋ ๋ฐ ํ์์ ์ ๋๋ค:
1. Ansible
Ansible์ ์ฃผ๋ก ํ์ด์ฌ์ผ๋ก ์์ฑ๋ ๊ฐ๋ ฅํ๊ณ ์์ด์ ํธ ์๋ ๊ตฌ์ฑ ๊ด๋ฆฌ ๋ฐ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ์ ๋๋ค. YAML(YAML Ain't Markup Language)์ ์ฌ์ฉํ์ฌ ์ธํ๋ผ ๊ตฌ์ฑ ๋ฐ ์์ ์ ์ค๋ช ํฉ๋๋ค. Ansible์ ๋ณต์กํ ์๋ํ ์์ ์ ๋จ์ํํ์ฌ ํ๋ก๋น์ ๋, ๊ตฌ์ฑ ๊ด๋ฆฌ, ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ๋ฑ์ ์๋ํํ ์ ์์ต๋๋ค. Ansible์ ์๋ฒ ๊ด๋ฆฌ, ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ๋ฐ ๋ฐ๋ณต ๊ฐ๋ฅํ ์ธํ๋ผ ์ค์ ์์ฑ์ ํ์ํฉ๋๋ค.
์์: ๊ธฐ๋ณธ Ansible ํ๋ ์ด๋ถ(YAML)
---
- hosts: all
become: yes
tasks:
- name: Update apt cache (Debian/Ubuntu)
apt:
update_cache: yes
when: ansible_os_family == 'Debian'
- name: Install Apache (Debian/Ubuntu)
apt:
name: apache2
state: present
when: ansible_os_family == 'Debian'
์ด ๊ฐ๋จํ ํ๋ ์ด๋ถ์ apt ์บ์๋ฅผ ์ ๋ฐ์ดํธํ๊ณ Debian/Ubuntu ์์คํ ์ Apache๋ฅผ ์ค์นํฉ๋๋ค. Ansible์ ํ์ด์ฌ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์๊ฒฉ ์๋ฒ์์ ๋ช ๋ น์ ์คํํ๊ฑฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค. YAML์ ์ฌ์ฉํ๋ฉด ํ๋ ์ด๋ถ์ ์ฝ๊ธฐ ์ฝ๊ณ ํ ์ ๋ฐ์์ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
2. Terraform
HashiCorp์์ ๊ฐ๋ฐํ Terraform์ ์ธํ๋ผ๋ฅผ ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ๊ตฌ์ถ, ๋ณ๊ฒฝ ๋ฐ ๋ฒ์ ๊ด๋ฆฌํ ์ ์๋ IaC ๋๊ตฌ์ ๋๋ค. ๊ด๋ฒ์ํ ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ฒด ๋ฐ ์ธํ๋ผ ์๋น์ค๋ฅผ ์ง์ํฉ๋๋ค. Terraform์ ์ํ๋ ์ธํ๋ผ ์ํ๋ฅผ ์ ์ํ๋ ์ ์ธ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉฐ ํ๋ก๋น์ ๋ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. Terraform์ ๋ค์ํ ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ฒด ์ ๋ฐ์ ์ธํ๋ผ ํ๋ก๋น์ ๋ ๋ฐ ๊ด๋ฆฌ์ ํ์ํฉ๋๋ค.
์์: ๊ฐ๋จํ Terraform ๊ตฌ์ฑ(HCL)
resource "aws_instance" "example" {
ami = "ami-0c55b2783617c73ff" # Replace with a valid AMI ID
instance_type = "t2.micro"
tags = {
Name = "example-instance"
}
}
์ด Terraform ๊ตฌ์ฑ์ AWS EC2 ์ธ์คํด์ค๋ฅผ ์ ์ํฉ๋๋ค. Terraform์ ์ํ๋ ์ํ๋ฅผ ์ ์ํ๊ณ ์ธํ๋ผ ํ๋ก๋น์ ๋์ ๋ณต์กํ ์ข ์์ฑ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ข์ต๋๋ค.
3. Boto3
Boto3๋ ํ์ด์ฌ์ฉ AWS SDK๋ก, ํ์ด์ฌ ์ฝ๋์์ ์ง์ AWS ์๋น์ค์ ์ํธ ์์ฉํ ์ ์์ต๋๋ค. AWS ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์๋ํํ๋ ํ์ด์ฌ ๋ฐฉ์์ ์ ๊ณตํ์ฌ ์ธํ๋ผ ๊ตฌ์ฑ ์์๋ฅผ ์ฝ๊ฒ ์์ฑ, ์์ ๋ฐ ์ญ์ ํ ์ ์์ต๋๋ค. Boto3๋ AWS ์ธํ๋ผ๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ด๋ ๋ณต์กํ ์๋ํ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ธฐ ์ํด AWS API์ ์ํธ ์์ฉํ๋ ๋ฐ ์ ํฉํฉ๋๋ค.
์์: Boto3๋ฅผ ์ฌ์ฉํ์ฌ S3 ๋ฒํท ์์ฑ
import boto3
s3 = boto3.client('s3')
bucket_name = 'your-unique-bucket-name'
try:
s3.create_bucket(Bucket=bucket_name, CreateBucketConfiguration={'LocationConstraint': 'eu-west-1'})
print(f'Bucket {bucket_name} created successfully.')
except Exception as e:
print(f'Error creating bucket: {e}')
์ด ํ์ด์ฌ ์ฝ๋๋ Boto3๋ฅผ ์ฌ์ฉํ์ฌ eu-west-1 ๋ฆฌ์ ์ S3 ๋ฒํท์ ์์ฑํฉ๋๋ค. ํด๋ผ์ฐ๋ ๋ฆฌ์์ค๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ์ดํ๋ โโBoto3์ ๊ฐ๋ ฅํจ์ ๋ณด์ฌ์ค๋๋ค.
4. Python Fabric
Fabric์ SSH๋ฅผ ํตํ ์์ ์๋ํ๋ฅผ ์ํด ์ค๊ณ๋ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์๊ฒฉ ์๋ฒ์์ ์ ๋ช ๋ น์ ์คํํ๊ณ ์๊ฒฉ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. Fabric์ ์๋ฒ ๊ตฌ์ฑ ๊ด๋ฆฌ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์ ์ ์ฉํฉ๋๋ค. Ansible์ด ๋ ๋ง์ ์ฃผ๋ชฉ์ ๋ฐ๊ณ ์์ง๋ง, Fabric์ ๋น ๋ฅธ ์๋ํ ์์ ์ ๋ํ ๊ฒฝ๋ ์ต์ ์ผ๋ก ๋จ์ ์์ต๋๋ค.
5. ํด๋ผ์ฐ๋ API ๋ฐ SDK(๊ธฐํ ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ฒด์ฉ)
AWS์ฉ Boto3์ ์ ์ฌํ๊ฒ ๋ค๋ฅธ ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ฒด๋ ํ์ด์ฌ SDK ๋๋ API๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด Google Cloud Platform(GCP)์ Google Cloud Client Libraries for Python์ ์ ๊ณตํ๊ณ Microsoft Azure๋ Azure SDK for Python์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ SDK๋ฅผ ํตํด ํด๋น ํด๋ผ์ฐ๋ ํ๊ฒฝ ๋ด์์ ์ธํ๋ผ ๋ฐ ์๋น์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ์ฌ๋ฌ ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ฒด์ ๊ฑธ์น ์์ ์ ์๋ํํ๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
ํ์ด์ฌ์ผ๋ก IaC ๊ตฌํํ๊ธฐ: ์ค๋ฌด ๋จ๊ณ
ํ์ด์ฌ์ผ๋ก IaC๋ฅผ ๊ตฌํํ๋ ์ค๋ฌด ๊ฐ์ด๋์ ๋๋ค:
1. IaC ๋๊ตฌ ์ ํ
ํ์์ ๊ฐ์ฅ ์ ํฉํ IaC ๋๊ตฌ๋ฅผ ์ ํํฉ๋๋ค. ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ฒด ์ง์, ์ฌ์ฉ ํธ์์ฑ, ์ธํ๋ผ์ ๊ท๋ชจ ๋ฐ ๋ณต์ก์ฑ๊ณผ ๊ฐ์ ์์๋ฅผ ๊ณ ๋ คํฉ๋๋ค. Terraform์ ๋ค์ํ ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ฒด์ ๋ํ ํ๋ก๋น์ ๋์ ํ์ํ ์ ํ์ ๋๋ค. Ansible์ ๊ตฌ์ฑ ๊ด๋ฆฌ, ํนํ ๊ธฐ์กด ์๋ฒ ๊ด๋ฆฌ์ ํ์ํฉ๋๋ค.
2. ์ธํ๋ผ๋ฅผ ์ฝ๋๋ก ์ ์
์ธํ๋ผ๋ฅผ ์ ์ํ๊ธฐ ์ํด ์ฝ๋ ๋๋ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์๋ฒ, ๋คํธ์ํฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ์ ๋ฆฌ์์ค ์ง์ ์ด ํฌํจ๋ฉ๋๋ค. ๋ฒ์ ์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธํ๋ผ ์ฝ๋๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ธํ๋ผ๊ฐ ๋ ํ์ฅ ๊ฐ๋ฅํ๋๋ก ๋ชจ๋์ ์ ๊ทผ ๋ฐฉ์์ ๊ฐ๋ฐํฉ๋๋ค.
3. ๋ฒ์ ์ ์ด
๋ฒ์ ์ ์ด ์์คํ (์: Git)์ ์ฌ์ฉํ์ฌ ์ธํ๋ผ ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ด์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ๊ณ , ํจ๊ณผ์ ์ผ๋ก ํ์ ํ๋ฉฐ, ๋ณ๊ฒฝ ๊ธฐ๋ก์ ์ ์งํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ ๋ฐ ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ๋ฅผ ์ํด ๋ธ๋์นญ ์ ๋ต(์: Gitflow)์ ๊ณ ๋ คํฉ๋๋ค.
4. ํ ์คํธ
ํ๋ก๋์ ์ ๋ฐฐํฌํ๊ธฐ ์ ์ IaC ์ฝ๋๋ฅผ ํ ์คํธํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋จ์ ํ ์คํธ, ํตํฉ ํ ์คํธ ๋ฐ ์ข ๋จ ๊ฐ ํ ์คํธ๊ฐ ํฌํจ๋ฉ๋๋ค. ํ ์คํธ๋ฅผ ํตํด ์ธํ๋ผ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๊ณ ๋ณ๊ฒฝ ์ฌํญ์ด ์ค๋ฅ๋ฅผ ์ผ์ผํค์ง ์์์ ๋ณด์ฅํฉ๋๋ค. ํนํ ๋ณต์กํ ์ธํ๋ผ ์ ์์ ๊ฒฝ์ฐ ๊ฒ์ฆ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๊ฒ์ฆํฉ๋๋ค.
5. CI/CD ํตํฉ
IaC ์ฝ๋๋ฅผ CI/CD ํ์ดํ๋ผ์ธ๊ณผ ํตํฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ธํ๋ผ ๋ณ๊ฒฝ ์ฌํญ์ ๋น๋, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ ์ ์์ต๋๋ค. Jenkins, GitLab CI ๋๋ GitHub Actions์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ๋ฅผ ์๋ํํฉ๋๋ค. ์ด๋ ์ธํ๋ผ๋ฅผ ๋ฐฐํฌํ๋ ์ผ๊ด๋๊ณ ์๋ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
6. ๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น
์ธํ๋ผ์ ์ฑ๋ฅ ๋ฐ ์ํ๋ฅผ ์ถ์ ํ๊ธฐ ์ํด ๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น ์ ๊ตฌํํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ์ ์ํ๊ฒ ์๋ณํ๊ณ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ๊ธฐ๋กํ์ฌ ๋ฌธ์ ํด๊ฒฐ ๋ฐ ๋กค๋ฐฑ ์๋๋ฅผ ๋์ ๋๋ค. ๊ฒฝ๊ณ ๋ฐ ๋ชจ๋ํฐ๋ง์ ์ํด Prometheus ๋ฐ Grafana์ ๊ฐ์ ๋ชจ๋ํฐ๋ง ๋๊ตฌ์ ํตํฉํฉ๋๋ค.
7. ํ์ ๋ฐ ๋ฌธ์ํ
ํ์ ์ํ ๋ช ํํ ์ปค๋ฎค๋์ผ์ด์ ๋ฐ ํ์ ๊ดํ์ ์๋ฆฝํฉ๋๋ค. ์ธํ๋ผ์ ๋ํ ์ฌ๋ฐ๋ฅธ ๋ฌธ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฝ๋๊ฐ ๋ช ํํ๊ฒ ์ฃผ์ ์ฒ๋ฆฌ๋๊ณ ์ฝ๋ฉ ํ์ค์ ๋ฐ๋ฅด๋๋ก ํฉ๋๋ค. ํ์ ์ ์ด์งํ๊ธฐ ์ํด ์ฝ๋ ๊ฒํ ๋ฐ ๊ณต์ ๋ฌธ์๋ฅผ ๊ตฌํํ๋ฉฐ, ์ด๋ ๋ค๋ฅธ ์๊ฐ๋์ ์๋ ๊ธ๋ก๋ฒ ํ์ ํนํ ์ค์ํฉ๋๋ค.
ํ์ด์ฌ ๋ฐ๋ธ์ต์ค ๋ฐ IaC๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด ํ์ด์ฌ ๋ฐ๋ธ์ต์ค ๋ฐ IaC์ ์ด์ ์ ๊ทน๋ํํ ์ ์์ต๋๋ค:
- DRY(Don't Repeat Yourself) ์์น ๋ฐ๋ฅด๊ธฐ: ๋ชจ๋ํ ๋ฐ ์ฌ์ฌ์ฉ์ฑ์ ์ฌ์ฉํ์ฌ ์ฝ๋ ์ค๋ณต์ ํผํฉ๋๋ค. ์ด๋ ํฌ๊ณ ๋ณต์กํ ์ธํ๋ผ ์ค์ ์ ์ ์งํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
- ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์ฝ๋ ์์ฑ: ํ์ด์ฌ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ์ฑ์ ์ฐ์ ์ํฉ๋๋ค. ์๋ฏธ ์๋ ๋ณ์ ์ด๋ฆ๊ณผ ์ฃผ์์ ์ฌ์ฉํฉ๋๋ค.
- ๋ฒ์ ์ ์ด ์ฌ์ฉ: ํญ์ ๋ฒ์ ์ ์ด ์์คํ (์: Git)์ ์ฌ์ฉํ์ฌ ์ธํ๋ผ ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํฉ๋๋ค.
- ๋ชจ๋ ๊ฒ์ ์๋ํ: ํ๋ก๋น์ ๋, ๊ตฌ์ฑ, ๋ฐฐํฌ ๋ฐ ํ ์คํธ๋ฅผ ํฌํจํ์ฌ ๊ฐ๋ฅํ ํ ๋ง์ ์์ ์ ์๋ํํฉ๋๋ค.
- CI/CD ํ์ดํ๋ผ์ธ ๊ตฌํ: IaC ์ฝ๋๋ฅผ CI/CD ํ์ดํ๋ผ์ธ๊ณผ ํตํฉํ์ฌ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ณ๊ฒฝ ์ฌํญ์ด ํ์ํ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ์ฒ ์ ํ๊ฒ ํ ์คํธ: ํ๋ก๋์ ์ ๋ฐฐํฌํ๊ธฐ ์ ์ IaC ์ฝ๋๋ฅผ ํ ์คํธํฉ๋๋ค. ๋จ์ ํ ์คํธ, ํตํฉ ํ ์คํธ ๋ฐ ์ข ๋จ ๊ฐ ํ ์คํธ๋ฅผ ํฌํจํฉ๋๋ค.
- ๋ชจ๋ํ ์ฌ์ฉ: ์ธํ๋ผ๋ฅผ ๋ ์๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋๋ก ๋ถํ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ธํ๋ผ๋ฅผ ๋ ์ฝ๊ฒ ๊ด๋ฆฌํ๊ณ ํ์ฅํ ์ ์์ต๋๋ค.
- ์ฝ๋ ๋ณด์: ๋น๋ฐ๋ฒํธ ๋ฐ API ํค์ ๊ฐ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์์ ํ ์ ์ฅ ๋ฉ์ปค๋์ฆ(์: ํ๊ฒฝ ๋ณ์, ๋น๋ฐ ๊ด๋ฆฌ ์๋น์ค)์ ์ฌ์ฉํ์ฌ ๋ณดํธํฉ๋๋ค.
- ์ธํ๋ผ ๋ชจ๋ํฐ๋ง: ์ธํ๋ผ์ ์ฑ๋ฅ ๋ฐ ์ํ๋ฅผ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋ฆผ์ ๋ฐ์ ์ ์๋๋ก ๊ฒฝ๊ณ ๋ฅผ ๊ตฌํํฉ๋๋ค.
- ํ์ ์์ฉ: ํ์ ๊ฐ์ ํ์ ๋ฌธํ๋ฅผ ์กฐ์ฑํฉ๋๋ค. ์ฝ๋ ๊ฒํ ๋ฐ ๊ณต์ ๋ฌธ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ํนํ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ํ์์ ํจ์จ์ ์ธ ์ปค๋ฎค๋์ผ์ด์ ๊ณผ ๋ฌธ์ ํด๊ฒฐ์ ์ด์งํฉ๋๋ค.
์ค์ ์ฌ๋ก ๋ฐ ์ฌ๋ก ์ฐ๊ตฌ
์ ์ธ๊ณ ๋ง์ ์กฐ์ง์ด ๋ฐ๋ธ์ต์ค ์ด๋์ ํฐ๋ธ๋ฅผ ์ํด ํ์ด์ฌ๊ณผ IaC๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ํ์ฉํ๊ณ ์์ต๋๋ค. ๋ช ๊ฐ์ง ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- Netflix: Netflix๋ ๊ตฌ์ฑ ๊ด๋ฆฌ(SaltStack๊ณผ ๊ฐ์ ๋๊ตฌ ์ฌ์ฉ) ๋ฐ ํด๋ผ์ฐ๋ ์ธํ๋ผ์ ์๋น ๋ถ๋ถ์ ์๋ํํ๋ ๊ฒ์ ํฌํจํ์ฌ ์ธํ๋ผ ๊ด๋ฆฌ ์ ๋ฐ์ ๊ฑธ์ณ ํ์ด์ฌ์ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉํฉ๋๋ค.
- Spotify: Spotify๋ ์ธํ๋ผ ์๋ํ, ๋ชจ๋ํฐ๋ง ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ๋ฐ๋ธ์ต์ค ์์ ์ ํ์ด์ฌ์ ์ฌ์ฉํฉ๋๋ค. Ansible ๋ฐ Kubernetes์ ๊ฐ์ ๋๊ตฌ๋ฅผ ํ์ฉํฉ๋๋ค.
- Airbnb: Airbnb๋ ์ธํ๋ผ ์๋ํ์ ํ์ด์ฌ์ ์ฌ์ฉํ๋ฉฐ ์๋น์ค ๊ด๋ฆฌ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ํ ๋ด๋ถ ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ํ๋ซํผ์ ํจ์จ์ ์ผ๋ก ํ์ฅํ๊ณ ๋ค์ํ ์ง์ญ์์ ์์ ์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋๋ก ํฉ๋๋ค.
- ๊ธ์ต ๊ธฐ๊ด: ์ํ ๋ฐ ํฌ์ ํ์ฌ์ ๊ฐ์ ๋ง์ ๊ธ์ต ๊ธฐ๊ด์ ์๋ํ๋ ๋ณด์ ๋ฐ ๊ท์ ์ค์ ์์ , ์๋ฒ ์ธํ๋ผ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ๋ณด์ ๋ณด์ฅ์ ์ํด IaC์ ํจ๊ป ํ์ด์ฌ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ์ข ์ข ๊ท์ ๋ ํ๊ฒฝ์์ ์ค์ํฉ๋๋ค.
- ๊ธ๋ก๋ฒ ์ ์ ์๊ฑฐ๋ ํ์ฌ: ๋๊ท๋ชจ ์ ์ ์๊ฑฐ๋ ํ์ฌ๋ Ansible ๋ฐ Terraform๊ณผ ๊ฐ์ ๋๊ตฌ์ ํจ๊ป ํ์ด์ฌ์ ์ฌ์ฉํ์ฌ ๋ค์ํ ์ง์ญ ๋ฐ ๋ฐ์ดํฐ ์ผํฐ ์ ๋ฐ์ ์ธํ๋ผ ๋ฐฐํฌ, ํ์ฅ ๋ฐ ๊ตฌ์ฑ์ ์๋ํํฉ๋๋ค. ์ด๋ ๊ธ๋ก๋ฒ ํธ๋ํฝ ๋ฐ ํผํฌ ๋ก๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
์ด๋ฌํ ์๋ ๋ค์ํ ์ฐ์ ๋ฐ ์กฐ์ง ๊ท๋ชจ์์ ํ์ด์ฌ๊ณผ IaC์ ๋ค์ฉ์ฑ๊ณผ ๊ฐ๋ ฅํจ์ ๋ณด์ฌ์ค๋๋ค.
ํ์ด์ฌ ๋ฐ๋ธ์ต์ค ์๋ํ์ ๊ณผ์ ๊ทน๋ณต
ํ์ด์ฌ๊ณผ IaC๋ ์๋นํ ์ด์ ์ ์ ๊ณตํ์ง๋ง ๊ณ ๋ คํด์ผ ํ ๊ณผ์ ๋ ์์ ์ ์์ต๋๋ค:
- ๋ณต์ก์ฑ: ํนํ ๋๊ท๋ชจ ์กฐ์ง์์๋ ์ธํ๋ผ๊ฐ ๋ณต์กํด์ง ์ ์์ต๋๋ค. ์ ์ ํ ๊ณํ, ๋ชจ๋์ ์ค๊ณ ๋ฐ ๋ฌธ์ํ๊ฐ ํ์์ ์ ๋๋ค.
- ๋ณด์: ์ทจ์ฝ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฝ๋์ ์ธํ๋ผ๋ฅผ ์ ์ ํ๊ฒ ๋ณดํธํฉ๋๋ค. ๋น๋ฐ ์ ๋ณด์ ๋ํ ์์ ํ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๊ณ ๋ณด์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฆ ๋๋ค.
- ํ์ต ๊ณก์ : ๋ฐ๋ธ์ต์ค ์์ง๋์ด๋ ์๋ก์ด ๋๊ตฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๊ฐ๋ ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ์ ํ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด ๊ต์ก ๋ฐ ์ง์์ ์ ๊ณตํฉ๋๋ค.
- ํ ํ์ : ํ์ ์ด ์ค์ํฉ๋๋ค. ๋ช ํํ ์ปค๋ฎค๋์ผ์ด์ ํ๋กํ ์ฝ์ ์๋ฆฝํ๊ณ , ์ธํ๋ผ๋ฅผ ๋ฌธ์ํํ๋ฉฐ, ์ฝ๋ ๊ฒํ ๋ฅผ ๊ตฌํํฉ๋๋ค.
- ๋ฒค๋ ์ข ์์ฑ: ํด๋ผ์ฐ๋๋ณ IaC ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฌ์ ์ธ ๋ฒค๋ ์ข ์์ฑ์ ์ธ์งํฉ๋๋ค. ์ด๋ฅผ ํผํ๊ธฐ ์ํด ๋ฉํฐ ํด๋ผ์ฐ๋ ์ ๋ต์ ๊ณ ๋ คํฉ๋๋ค.
- ๋น์ฉ ๊ด๋ฆฌ: ๋ฆฌ์์ค ํ๊น ๋ฐ ์๋ ํ์ฅ๊ณผ ๊ฐ์ ๋น์ฉ ์ต์ ํ ์ ๋ต์ ๊ตฌํํ์ฌ ํด๋ผ์ฐ๋ ์ง์ถ์ ์ ์ดํฉ๋๋ค. ์ ์ ํ ํ๊น ์ ํตํด ํ๊ณ ๋ชฉ์ ์ผ๋ก ํด๋ผ์ฐ๋ ๋ฆฌ์์ค ๋น์ฉ์ ์ ํํ๊ฒ ์ถ์ ํ๊ณ ์์ฐ์ ์ ์ดํ ์ ์์ผ๋ฉฐ, ์ด๋ ๋ค๋ฅธ ๋น์ฉ ์ผํฐ๊ฐ ์๋ ๋ค๊ตญ์ ๊ธฐ์ ์ ํนํ ์ ์ฉํฉ๋๋ค.
ํ์ด์ฌ ๋ฐ๋ธ์ต์ค ์๋ํ์ ๋ฏธ๋ ๋ํฅ
ํ์ด์ฌ ๋ฐ๋ธ์ต์ค ๋ฐ IaC ๋ถ์ผ๋ ์ง์์ ์ผ๋ก ๋ฐ์ ํ๊ณ ์์ต๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์๋ก์ด ๋ํฅ์ ๋๋ค:
- ์๋ฒ๋ฆฌ์ค ์ปดํจํ : ํ์ด์ฌ๊ณผ IaC๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ๋ฐฐํฌ๋ฅผ ์๋ํํ๋ ๊ฒ์ด ์ ์ ๋ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ AWS Lambda ํจ์ ๋ฐ Google Cloud Functions์ ๊ฐ์ ์๋ฒ๋ฆฌ์ค ํจ์์ ๋ฐฐํฌ ๋ฐ ๊ตฌ์ฑ ์๋ํ๊ฐ ํฌํจ๋ฉ๋๋ค.
- GitOps: Git์ ์ธํ๋ผ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ์ ์ง์ค ๊ณต๊ธ์์ผ๋ก ์ฌ์ฉํ๋ ๊ดํ์ธ GitOps๊ฐ ์ถ์ง๋ ฅ์ ์ป๊ณ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์๋ํ ๋ฐ ํ์ ์ ํฅ์์ํต๋๋ค.
- AI ๊ธฐ๋ฐ ์๋ํ: ์ธ๊ณต ์ง๋ฅ(AI) ๋ฐ ๋จธ์ ๋ฌ๋(ML)์ ์ฌ์ฉํ์ฌ ์ธํ๋ผ ์ต์ ํ ๋ฐ ์ด์ ๊ฐ์ง์ ๊ฐ์ ๋ ๋ณต์กํ ๋ฐ๋ธ์ต์ค ์์ ์ ์๋ํํฉ๋๋ค.
- ๋ฉํฐ ํด๋ผ์ฐ๋ ๊ด๋ฆฌ: ์ฌ๋ฌ ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ฒด์ ๊ฑธ์ณ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ ์ ๋ ์ผ๋ฐํ๋๊ณ ์์ต๋๋ค. ํ์ด์ฌ ๋ฐ IaC ๋๊ตฌ๋ ๋ค์ํ ํ๋ซํผ ์ ๋ฐ์ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๋ ํตํฉ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ์ด๋ฅผ ์ด์งํฉ๋๋ค.
- ์ฃ์ง ์ปดํจํ ์๋ํ: ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ๋คํธ์ํฌ ์ฃ์ง์์ ์ธํ๋ผ๋ฅผ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ ์๋ํํฉ๋๋ค. ์ด๋ ๋ฎ์ ์ง์ฐ ์๊ฐ๊ณผ ๋์ ๊ฐ์ฉ์ฑ์ ์๊ตฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ํฉ๋๋ค.
๊ฒฐ๋ก
IaC์ ์์น๊ณผ ๊ฒฐํฉ๋ ํ์ด์ฌ์ ํ๋ ๋ฐ๋ธ์ต์ค ์๋ํ๋ฅผ ์ํ ๊ฐ๋ ฅํ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค. Ansible, Terraform ๋ฐ Boto3์ ๊ฐ์ ๋๊ตฌ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ์กฐ์ง์ ์ธํ๋ผ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ํํ๊ณ ํจ์จ์ฑ์ ๊ฐ์ ํ๋ฉฐ ์ํํธ์จ์ด ์ ๊ณต ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค. ์๋ จ๋ ๋ฐ๋ธ์ต์ค ์์ง๋์ด๋ ์ด์ ๋ง ์ฌ์ ์ ์์ํ๋ ์ฌ๋์ด๋ , ํ์ด์ฌ๊ณผ IaC๋ฅผ ๋ง์คํฐํ๋ ๊ฒ์ ๋ฏธ๋๋ฅผ ์ํ ๊ท์คํ ๊ธฐ์ ์ธํธ์ ๋๋ค. ์์ ์๋ ์ ์ ํ ๋๊ตฌ์ ๋ฐฉ๋ฒ๋ก ์ ์ฑํํจ์ผ๋ก์จ ์ ์ธ๊ณ์ ์ผ๋ก ๋ณต์ ๋ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ดํ์ ์์ฉํ๊ณ ์ต์ ํธ๋ ๋์ ์ง์์ ์ผ๋ก ์ ์ํจ์ผ๋ก์จ ์กฐ์ง์ด ์ค๋๋ ๊ฒฝ์ ํ๊ฒฝ์์ ๋ฒ์ฐฝํ ์ ์๋๋ก ์ง์ํ๋ ํ๋ ฅ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํจ์จ์ ์ธ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ํ์ ์ ์ฐ์ ์ํ๊ณ , ์๋ํ๋ฅผ ์์ฉํ๋ฉฐ, ๋ฐ๋ธ์ต์ค ๊ดํ์ ๊ฐ์ ํ ๊ธฐํ๋ฅผ ๋์์์ด ์ฐพ์ผ์ญ์์ค.